package com.example.service.webhook.business.bank.dtonew;


import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

/**
 * Created by wangyanbo on 16/9/28.
 * Modified by liyang on 20171019 接口升级
 */
@JsonInclude(JsonInclude.Include.NON_NULL)
public class CardDetail {
    @JsonProperty("card_id")
    private String cardId;

	@JsonProperty("card_type")
	private String cardType;

    @JsonProperty("bank_name")
    private String bankName;

	/**
	 * 银行简称 (例:招商银行-简称“CMB”,详见“附录:服务支持列表”)
	 * 说明：20171019接口升级，新增字段
	 */
	@JsonProperty("bank_id")
    private String bankId;

	@JsonProperty("full_card_num")
	private String fullCardNo;

    @JsonProperty("card_num")
    private String cardNo;

	/**
	 * 持卡人
	 */
	@JsonProperty("name_on_card")
    private String nameOnCard;

	/**
	 * 借记卡余额/信用卡可用额度
	 */
	private BigDecimal balance;

	/**
	 * 信用卡总额度
	 */
	@JsonProperty("credit_limit")
    private BigDecimal creditLimit;

    @JsonProperty("cash_balance")
    private BigDecimal cashBalance;

    @JsonProperty("cash_limit")
    private BigDecimal cashLimit;

	/**
	 * 开户行
	 * 说明：20171019接口升级，新增字段
	 */
	@JsonProperty("open_bank")
    private String openBank;

	@JsonProperty("open_time")
	private String openTime;

	/**
	 * 说明：20171019接口升级，新增字段
	 * 本期账单金额
	 */
    @JsonProperty("current_bill_amt")
    private BigDecimal currentBillAmt;

	/**
	 * 说明：20171019接口升级，新增字段
	 * 本期已还金额
	 */
	@JsonProperty("current_bill_paid_amt")
	private BigDecimal currentBillPaidAmt;

	/**
	 * 说明：20171019接口升级，新增字段
	 * 本期剩余应还金额
	 */
	@JsonProperty("current_bill_remain_amt")
	private BigDecimal currentBillRemainAmt;

	/**
	 * 说明：20171019接口升级，新增字段
	 * 本期剩余最低应还金额
	 */
	@JsonProperty("current_bill_remain_min_payment")
	private BigDecimal currentBillRemainMinPayment;


    private List<CardDeposit> deposits = new ArrayList<>();
    private List<BillDetail> bills = new ArrayList<>();
	public String getCardId() {
		return cardId;
	}
	public void setCardId(String cardId) {
		this.cardId = cardId;
	}
	public String getBankName() {
		return bankName;
	}
	public void setBankName(String bankName) {
		this.bankName = bankName;
	}
	public String getCardType() {
		return cardType;
	}
	public void setCardType(String cardType) {
		this.cardType = cardType;
	}
	public String getCardNo() {
		return cardNo;
	}
	public void setCardNo(String cardNo) {
		this.cardNo = cardNo;
	}
	public String getFullCardNo() {
		return fullCardNo;
	}
	public void setFullCardNo(String fullCardNo) {
		this.fullCardNo = fullCardNo;
	}
	public String getNameOnCard() {
		return nameOnCard;
	}
	public void setNameOnCard(String nameOnCard) {
		this.nameOnCard = nameOnCard;
	}
	public BigDecimal getBalance() {
		return balance;
	}
	public void setBalance(BigDecimal balance) {
		this.balance = balance;
	}
	public BigDecimal getCreditLimit() {
		return creditLimit;
	}
	public void setCreditLimit(BigDecimal creditLimit) {
		this.creditLimit = creditLimit;
	}
	public BigDecimal getCashBalance() {
		return cashBalance;
	}
	public void setCashBalance(BigDecimal cashBalance) {
		this.cashBalance = cashBalance;
	}
	public BigDecimal getCashLimit() {
		return cashLimit;
	}
	public void setCashLimit(BigDecimal cashLimit) {
		this.cashLimit = cashLimit;
	}
	public String getOpenTime() {
		return openTime;
	}
	public void setOpenTime(String openTime) {
		this.openTime = openTime;
	}
	public List<CardDeposit> getDeposits() {
		return deposits;
	}
	public void setDeposits(List<CardDeposit> deposits) {
		this.deposits = deposits;
	}
	public List<BillDetail> getBills() {
		return bills;
	}
	public void setBills(List<BillDetail> bills) {
		this.bills = bills;
	}

	public String getBankId() {
		return bankId;
	}

	public void setBankId(String bankId) {
		this.bankId = bankId;
	}

	public String getOpenBank() {
		return openBank;
	}

	public void setOpenBank(String openBank) {
		this.openBank = openBank;
	}

	public BigDecimal getCurrentBillAmt() {
		return currentBillAmt;
	}

	public void setCurrentBillAmt(BigDecimal currentBillAmt) {
		this.currentBillAmt = currentBillAmt;
	}

	public BigDecimal getCurrentBillPaidAmt() {
		return currentBillPaidAmt;
	}

	public void setCurrentBillPaidAmt(BigDecimal currentBillPaidAmt) {
		this.currentBillPaidAmt = currentBillPaidAmt;
	}

	public BigDecimal getCurrentBillRemainAmt() {
		return currentBillRemainAmt;
	}

	public void setCurrentBillRemainAmt(BigDecimal currentBillRemainAmt) {
		this.currentBillRemainAmt = currentBillRemainAmt;
	}

	public BigDecimal getCurrentBillRemainMinPayment() {
		return currentBillRemainMinPayment;
	}

	public void setCurrentBillRemainMinPayment(BigDecimal currentBillRemainMinPayment) {
		this.currentBillRemainMinPayment = currentBillRemainMinPayment;
	}
}
